#pragma once

#ifdef __cplusplus
extern "C" {
#endif
	//定义结点数据类型
	struct LinkNode
	{
		int data;
		struct LinkNode *next;
	};

	//初始化链表
	struct LinkNode *newLinkList();
	//在值val的后面插入一个新的数据newval 拿到头相当于拿到整个链表
	void insertLinkListByAfterValue(struct LinkNode *header, int value, int newValue);
	//删除值为val的结点
	void deleteLinkListNodeByValue(struct LinkNode *header, int deleteValue);
	//遍历
	void foreachLinkList(struct LinkNode *header);
	//销毁
	void destroyLinkList(struct LinkNode *header);
	//清空
	void clearLinkList(struct LinkNode *header);
	//链表逆序
	void reverseLinkList(struct LinkNode *header);
#ifdef __cplusplus
}
#endif
